#ifndef CRenderBuffer_h__
#define CRenderBuffer_h__

#include "Common/CommonTypes.h"

enum EResourceType
{
	RESOURSE_VERTEX_BUFFER,
	RESOURCE_INDEX_BUFFER,
	RESOURCE_RENDER_TARGET,
	RESOURCE_TEXTURE,
	RESOURCE_EFFECT
};

// See Ogre
enum EHardwareBufferUsage
{
	HBU_STATIC = 1,
	HBU_DYNAMIC = 2,
	HBU_WRITE_ONLY = 4,
	HBU_DISCARDABLE = 8,
	HBU_STATIC_WRITE_ONLY = 5, 
	HBU_DYNAMIC_WRITE_ONLY = 6,
	HBU_DYNAMIC_WRITE_ONLY_DISCARDABLE = 14
};

typedef void* ResourceHandle;
class CHardwareResource
{
public:
	CHardwareResource(UINT32 dwID, ResourceHandle hHandle, EResourceType eResType);	
	virtual ~CHardwareResource();
	virtual void Release();
	
public:
	UINT32          m_dwID;
	ResourceHandle  m_hRealHandle;
	EResourceType   m_eResType;
};

#endif // CRenderBuffer_h__
